bitkeeper revision 1.1159.223.15 (41f2c43e5U8GurDCsAUaiGJ2VOmnUQ)
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>
Sat, 22 Jan 2005 21:23:10 +0000 (21:23 +0000)
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>
Sat, 22 Jan 2005 21:23:10 +0000 (21:23 +0000)
Description: Use proper targets in makefiles
A rule in make should produce only what it's target allows.  When it
produces side-effects, things like ctrl-c and parallellism break it
oddly.

From Adam Heath <doogie@brainfood.com>
Signed-off-by: ian.pratt@cl.cam.ac.uk
xen/Makefile
xen/arch/x86/Makefile
xen/common/Makefile
xen/drivers/acpi/Makefile
xen/drivers/char/Makefile
xen/drivers/pci/Makefile

index 0c5c85e0f36657b319c7641d63ff3c2ba10c8c60..7eb1d17847aa1412bc501f6646d5da889e172dc9 100644 (file)
@@ -9,14 +9,15 @@ export BASEDIR          := $(shell pwd)
 
 include Rules.mk
 
-default: $(TARGET)
-       gzip -f -9 < $(TARGET) > $(TARGET).gz
+default: $(TARGET).gz
+$(TARGET).gz: $(TARGET)
+       gzip -f -9 < $< > $@.new
+       mv $@.new $@
 
 debug: 
        objdump -D -S $(TARGET)-syms > $(TARGET).s
 
-install: $(TARGET)
-       gzip -f -9 < $(TARGET) > $(TARGET).gz
+install: $(TARGET).gz
        mkdir -p $(prefix)/boot
        install -m0644 $(TARGET).gz $(prefix)/boot
        install -m0644 $(TARGET)-syms $(prefix)/boot
index 0062ce76784b08275b4c90e5d98988d123b18257..574b0c35a548ae7c7b040ba5c823dae75ce5e9fe 100644 (file)
@@ -12,12 +12,18 @@ OBJS += $(patsubst %.c,%.o,$(wildcard mtrr/*.c))
 
 OBJS := $(subst $(TARGET_SUBARCH)/asm-offsets.o,,$(OBJS))
 
-default: boot/$(TARGET_SUBARCH).o $(OBJS) boot/mkelf32
-       $(LD) $(LDFLAGS) -r -o arch.o $(OBJS)
-       $(LD) $(LDFLAGS) -T $(TARGET_SUBARCH)/xen.lds -N \
-           boot/$(TARGET_SUBARCH).o $(ALL_OBJS) -o $(TARGET)-syms
+default: $(TARGET)
+
+$(TARGET): $(TARGET)-syms boot/mkelf32
        ./boot/mkelf32 $(TARGET)-syms $(TARGET) 0x100000
 
+$(CURDIR)/arch.o: $(OBJS)
+       $(LD) $(LDFLAGS) -r -o $@ $(OBJS)
+
+$(TARGET)-syms: boot/$(TARGET_SUBARCH).o $(ALL_OBJS) $(TARGET_SUBARCH)/xen.lds
+       $(LD) $(LDFLAGS) -T $(TARGET_SUBARCH)/xen.lds -N \
+           boot/$(TARGET_SUBARCH).o $(ALL_OBJS) -o $@
+
 asm-offsets.s: $(TARGET_SUBARCH)/asm-offsets.c
        $(CC) $(CFLAGS) -S -o $@ $<
 
index b764c1598a42162dde4cfd1f66c9d03c26f3457a..1ae6148be214b0d7cc5f95245abccef78d3ceca5 100644 (file)
@@ -21,7 +21,8 @@ ifneq ($(trace),y)
 OBJS := $(subst trace.o,,$(OBJS))
 endif
 
-default: $(OBJS)
+default: common.o
+common.o: $(OBJS)
        $(LD) $(LDFLAGS) -r -o common.o $(OBJS)
 
 clean:
index 2b80430148b70f9d699dba354899ba7729703368..fec92eb4051828f42dee31be7c4ce75d38fbe551 100644 (file)
@@ -6,7 +6,8 @@ include $(BASEDIR)/Rules.mk
 
 OBJS := acpi_ksyms.o tables.o
 
-default: $(OBJS)
+default: driver.o
+driver.o: $(OBJS)
        $(LD) $(LDFLAGS) -r -o driver.o $(OBJS)
 
 clean:
index f938f870173575f8ba76454fc7ab2e6644e894f8..957a4bc5a2d595de773135a8bbf783aab567a2c8 100644 (file)
@@ -1,7 +1,8 @@
 
 include $(BASEDIR)/Rules.mk
 
-default: $(OBJS)
+default: driver.o
+driver.o: $(OBJS)
        $(LD) $(LDFLAGS) -r -o driver.o $(OBJS)
 
 clean:
index 7fd6c1705fc3ca9d0e31675d0ae438145436da05..040d5aaccd38e328d7116c0592bfa8a58e8d69ee 100644 (file)
@@ -28,7 +28,8 @@ OBJS := pci.o quirks.o compat.o names.o setup-res.o
 #obj-y += syscall.o
 #endif
 
-default: $(OBJS)
+default: driver.o
+driver.o: $(OBJS)
        $(LD) $(LDFLAGS) -r -o driver.o $(OBJS)
 
 clean: